package com.shujia.exception_.four;

import org.junit.Test;

public class OrderController {
    private User user = new User();
    private Stock stock = new Stock();


    @Test
    public void test1() {
        try {
            System.out.println(1 / 0);
        } catch (Exception e) {
            // 不做任何处理, 很难定位问题
        }
    }

    /*
    throw , throws, try catch, 配合使用
    在功能方法的入口使用 try catch,
    在调用的方法里使用throw 抛出具体的异常对象, 方法的声明上使用throws声明可能抛出的异常
     */
    @Test
    public void addOrder() {
        // 下单
        String userId = "1001";
        String goodsId = "8866";
        try {
            if (stock.checkStock(userId, goodsId) && user.isBuy()) {
                System.out.println("执行下单操作");
            }
        } catch (StockLessException e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
            System.out.println(e.getUserName());
            System.out.println(e.getGoodsName());
        } catch (Exception e) {
            e.printStackTrace();
//            System.out.println("系统繁忙,请稍后再试!");
            // 根据具体的异常情况, 给用户具体的提示
            // 亲爱的张三, 你购买的华为手机库存不足, 请补货后在来购买
            System.out.println("响应给用户的信息:" + e.getMessage());
        }

    }

}
